<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
   <title>AVISource / OpenDMLSource / AVIFileSource / WAVSource フィルタ</title>
   <link rel="stylesheet" type="text/css" href="../../avisynth.css">
   <link rel="stylesheet" type="text/css" href="../ja.css">
</head>
<body>
<h2><a NAME="AVISource"></a>AVISource / OpenDMLSource / AVIFileSource / WAVSource</h2>
<p><code>AVISource </code>(<var>string filename [, ...], bool "audio" = true, string
"pixel_type" = YV12, [string fourCC]</var>)<br>
  <code>OpenDMLSource </code>(<var>string filename [, ...], bool &quot;audio&quot; = true,
  string &quot;pixel_type&quot; = YV12, [string fourCC]</var>)<br>
  <code>AVIFileSource </code>(<var>string filename [, ...], bool &quot;audio&quot; = true,
  string &quot;pixel_type&quot; = YV12, [string fourCC]</var>)<br>
  <code>WAVSource </code>(<var>string filename [, ...]</var>)</p>

<p><code>AVISource</code> は、引用符で囲まれた 1 つ以上のファイル名を実引数として取り、Video-for-Windows の「AVIFile」インターフェイスか AviSynth 組み込みの（VirtualDub から取り入れられた） OpenDML コードを使って、ファイルを読み込みます。このフィルタは、AVIFile ハンドラを持つどんなファイルをも読み込むことができます。これには、AVI ファイルだけでなく、WAV ファイル、AVS （AviSynth スクリプト）ファイルや VDR （VirtualDub フレームサーバー）ファイルも含まれます。実引数として複数のファイル名を指定した場合、それらのクリップは、<code><a href="splice.htm">UnalignedSplice</a></code> を使って継ぎ合わされる（spliced）でしょう。audio パラメータはオプションで、デフォルトは true です。</p>

<p><code>AVISource</code> フィルタは、ファイルのタイプを決定するためにそのファイルを調べ、AVIFile ハンドラか OpenDML ハンドラのいずれか適切な方へ渡します。どちらか一方のハンドラでトラブルが生じた場合には、<code>OpenDMLSource</code> フィルタと <code>AVIFileSource</code> フィルタを使用することもできます。これらのフィルタは、いずれか一方のハンドラを強制的に使用します。どちらのハンドラも通常の（2GB 未満の） AVI ファイルについては読み取ることができますが、2GB 以上の AVI ファイルを読み取れるのは OpenDML ハンドラだけで、逆に WAV、VDR や AVS のようなその他のファイルタイプを読み取ることができるのは AVIFile ハンドラだけです。</p>

<p><em>v2.04</em>まで、<code>WAVSource</code> は <tt>AVIFileSource</tt> の別名でした。それ以降のバージョンでは、<code>WAVSource</code> はもうビデオストリームを開こうとはしません。これは、オーディオストリームを取り出したいにもかかわらず、ビデオストリームが破損していたり、圧縮方法があなたのシステムでサポートされていないような場合に役に立ちます。</p>

<p><em>v2.04</em> から、ACM （Audio Compression Manager）音声（例えば mp3-AVI）に対して内部サポートしています。また <code>AVISource</code> は、もう WAV ファイルを開くことはできません。WAV ファイルについては、<code>WAVSource</code> を使ってアクセスしなければなりません。</p>

<p><em>v2.06</em> から、<var>pixel_type</var> パラメータ（デフォルト YUY2）を使って、デコーダの出力フォーマットを選択することができます。有効な値は、&quot;YUY2&quot;、&quot;RGB32&quot; と &quot;RGB24&quot; です。省略された場合、AviSynth は、デコーダによってサポートされているフォーマットのうち、（YUY2、RGB32、RGB24 の順番で）最初のフォーマットを使用します。映像が非圧縮フォーマットの場合にはデコーダが使用されないため、このパラメータは何の効果もありません。<em>v2.5</em> から、<var>pixel_type</var> パラメータのデフォルトは、YV12 に変更されました。別の言葉に置き換えるなら、pixel_type パラメータを指定しなかった場合、AVISource フィルタはその AVI を YV12 として出力しようと試み、もしそれが不可能なら YUY2 として、さらにそれも無理なら RGB として出力します。</p>

<p>AviSynth v2.5 で DivX のクリップを読み込むと、（5.02 以前の） DivX のバグにより、色がおかしくなることがあります（色差チャンネルの U と V がスワップされます）。それを訂正するために、<a href="swap.htm"><code>SwapUV</code></a> を使用することができます。</p>

<p><em>v2.53</em> から、<code>AVISource</code> は、DV type 1 形式のビデオ入力も開くことができます（映像のみ、音声不可）。</p>

<p><em>v2.55</em> から、<var>fourCC</var> オプションが追加されています。fourCC は、おもに AVI に関連した、メディアファイルの先頭にある 4 文字のコード（FOUR Character Code）のことで、そのファイルをデコードするためにあなたのシステムがどのコーデックを使用するべきかを教えてくれます。このオプションを使うと、AviSource? に強制的に別のコーデックを使って AVI ファイルを開かせることができます。FOURCC の一覧表は、<a href="http://www.fourcc.org/index.php?http%3A//www.fourcc.org/codecs.php"><cite>こちら</cite></a> にあります。デフォルトでは、その AVI の fourCC が使用されます。</p>

<p>MJPEG コーデックや DV コーデックの中には、<code>AVISource</code> を使った時に、ITU-R BT.601 に適合した正しい出力を返さないものもあります。この問題は、コーデックの入出力のカラーフォーマットが異なる場合に起こります。例えば、入力のカラーフォーマットが YUY2 で出力のカラーフォーマットが RGB である場合や、またその逆の場合などがそうです。これを解決するには、次の 2 つの方法があります:</p>

<p>1) 強制的に出力を入力のカラーフォーマットと同じにする。例えば、以下のように（入力が RGB の場合）:</p>

<pre>AVISource(&quot;file.avi&quot;, pixel_type=&quot;RGB32&quot;)</pre>

<p>2) <a href="coloryuv.htm">ColorYUV</a>フィルタを使って補正する:</p>

<pre>AVISource(&quot;file.avi&quot;).ColorYUV(levels=&quot;PC-&gt;TV&quot;)</pre>

<p>関連スレッド:
<br>
  <cite><a href="http://forum.doom9.org/showthread.php?s=&postid=330657">MJPEG
codecs</a></cite>
<br>
  <cite><a href="http://forum.doom9.org/showthread.php?s=&threadid=58110">DV
codecs</a></cite>
</p>

<p><b>使用例:</b></p>

<pre># C プログラマのメモ: バックスラッシュ（訳者註: 日本語環境では、円記号（&amp;#165;）で表示されることが多い。）を二重にしない。フォワードスラッシュも機能する。
AVISource(&quot;d:\capture.avi&quot;)
AVISource(&quot;c:/capture/00.avi&quot;)
WAVSource(&quot;f:\soundtrack.wav&quot;)
WAVSource(&quot;f:/soundtrack.wav&quot;)

# 次は AVISource(&amp;quot;cap1.avi&amp;quot;) + AVISource(&amp;quot;cap2.avi&amp;quot;) と同じ:
AVISource(&quot;cap1.avi&quot;, &quot;cap2.avi&quot;)

# 音声を無効化して、RGB デコードをリクエストする
AVISource(&quot;cap.avi&quot;, false, &quot;RGB32&quot;)

# Canopus DV コーデックを使用して DV を開く
AviSource(&quot;cap.avi&quot;, false, fourCC=&quot;CDVC&quot;)

# Xvid コーデックを使用して AVI （たとえば DivX3）を開く
AviSource(&quot;cap.avi&quot;, false, fourCC=&quot;XVID&quot;)

# いずれか一方が音声を含まない 2 つのクリップを結合する
# 結合時、これらのクリップは互換性がなければならない（同じビデオおよびオーディオのプロパティを持つ必要がある）:
A = AviSource(&quot;FileA.avi&quot;)
B = AviSource(&quot;FileB.avi&quot;) # オーディオストリームなし
A ++ AudioDub(B, BlankClip(A))</pre>

<p>いくつかの圧縮フォーマットは、1 つのスクリプトの中で AviSource() を呼び出す回数に制限を課します。50 より少ない AviSource() 文でこの制限を経験した人もいます。<cite><a href="http://forum.doom9.org/showthread.php?t=131687">こちらの議論</a></cite>を参照してください。</p>

<p><b>更新履歴:</b></p>

<table border="1">
  <tbody>
    <tr>
      <td>v2.55</td>
      <td>fourCC オプションを追加。</td>
    </tr>
  </tbody>
</table>

<p><kbd>原文 Date: 2008/07/11 18:20:45</kbd><br>
<kbd>日本語訳 $Date: 2008/08/13 02:48:39 $</kbd></p>
<form><input TYPE="Button" VALUE="戻る"
onClick="history.go(-1)"></form>

<hr>
<div id="footnote">
<ul>
  <li>訳者註:
    <ul>
      <li><a name="footnote_1" class="footnote_link">*1</a> <span class="footnote_text">日本語環境では、円記号（&#165;）で表示されることが多い。</span></li>
    </ul>
  </li>
</ul>
</div>

</body>
</html>
